package com.lanou3g.code0412.inter;

/**
 * Created by dllo on 18/4/12.
 */

//interface   接口
/*为了扩展,分工协作更方便
*
*
* 定义接口: 与定义类一样,区别是class关键字改为interface关键字
*
*接口和抽象类的区别:
*    1.语法角度:
*       1.1 抽象类本质上还是一个类,在使用时,抽象类中可以存在普通方法和成员变量;而接口是单独的类型,在使用时,只能存在静态常量和抽象方法
*       1.2 接口中所有的方法可以不写abstract也是抽象方法,而抽象类中的抽象方法,必须写abstract关键字
*       1.3 抽象类必须被继承,才能够使用,而接口必须被实现才能被使用,一个类只能继承一个类,但是可以实现多个接口
*
*     2.含义角度:
   *     当我们使用抽象类的时候,通常想表达一种"is a"的含义,即当前类和被继承类之间存在着概念上的"父子关系";
   *     而使用接口的时候,通常是想表达一种"like a"的含义,即只是确定当前类具有某种能力(具有某些方法),而没有概念上的"父子关系";
*     3.使用角度:
 *      当一个类有确切的父子关系时,我们使用抽象类,否则使用接口(即便不确定是否有确切的父子关系,我们会优先考虑接口,毕竟类只能继承一次);
 *      如果一个类中有实体方法,那么,我们只能使用抽象类
*
* */

// 接口规定必须有指定实现方法

public interface  USB {
    // 接口与类一样,可以写属性,可以写方法,但是不同的是,接口中只能写常量和抽象方法
    // 常量:public static final

    //由于接口里只能出现常量,所以定义常量的时候,可以不写 public static final
    public static final String VOLTAGE = "5V"; //常量字母要全大写

    int A = 3;

    // 接口只能有 public的抽象方法,不能够有普通方法,它也不是类,也没有构造方法
    //所以,方法的public abstract 可以不写

    public abstract String sendData();
    public abstract void receiveData(String data);




}
